package com.gitee.clarence.configuration.properties;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import lombok.Data;

@Data
@Component
@ConfigurationProperties(prefix = "clarence")
public class ApplicationProperties {

	/**
	 * 描述 : 是否输出异常堆栈
	 */
	private boolean outputExceptionStackTrace = false;

	/**
	 * 描述 : 编码
	 */
	private String encoding = "UTF-8";

	/**
	 * 描述 : 时区
	 */
	private String timeZone = "Asia/Shanghai";

	/**
	 * 描述 : 日期格式
	 */
	private String dateFormat = "yyyy-MM-dd'T'HH:mm:ss:SSSZ";

	/**
	 * 描述 : 线程池属性
	 */
	private ThreadPoolProperties threadPool;

	/**
	 * 描述 : 如有大文件通过restTemplate传输,请设置为false
	 */
	private Boolean bufferRequestBody = true;

	/**
	 * 描述 : 线程池配置
	 *
	 * @author luopeng
	 */
	@Data
	public static class ThreadPoolProperties {

		/**
		 * 描述 : 默认线程池大小(默认:1)
		 */
		private Integer poolSize = 1;

		/**
		 * 描述 : 线程优先级
		 */
		private Integer threadPriority = Thread.NORM_PRIORITY;

		/**
		 * 描述 : 线程名称
		 */
		private String threadNamePrefix = "defaultThreadPool";

	}
}
